/**
 * Author:   .
 * Date:    2017/7/5 0005.
 * File：   weixin类.
 */
import BaseNative from './BaseNative'
import config from '../config'
import * as storage from '../storage'
import {Toast} from 'mint-ui'
import * as request from '../request'
import * as utils from '../utils'
// import * as utils from '../utils'
class WeixinNative extends BaseNative {
  getType() {
    return 'WeixinNative'
  }

  weixinLogin(fkmid) {
    let currentUrl = window.location.href
    if (fkmid) {
      window.location.href = config.website + '/mobile/index.php?act=index&op=wxAuthorize&fkmid=' + fkmid + '&reurl=' + currentUrl
    } else {
      window.location.href = config.website + '/mobile/index.php?act=index&op=wxAuthorize&reurl=' + currentUrl
    }
  }

  /**
   * 微信公众号支付
   * @param param {paySn: ''}
   */
  weixinPay(param) {
    let paySn = param.paySn
    let key = storage.getKey()
    if (!key || key == '') {
      Toast('请先注册')
      return
    }
    let url = config.website + '/mobile/index.php?act=member_payment&op=pay&key=' + key + '&pay_sn=' + paySn + '&payment_code=wxpay'
    window.location.href = url
  }
  /**
   * 微信公众号支付-充值到经验值
   * @param param {paySn: ''}
   */
  weixinPayCharge(param) {
    let amount = param.amount
    let key = storage.getKey()
    if (!key || key == '') {
      Toast('请先注册')
      return
    }
    let url = config.website + '/mobile/index.php?act=member_payment&op=rechargePay&key=' + key + '&recharge_amount=' + amount + '&payment_code=wxpay'
    window.location.href = url
  }

  async weixinShare(url, title, imgUrl, desc) {
    console.log('link1', url)
    console.log('调用weixinShare的url', url)
    url = url || (config.website + 'wap/')
    title = title || '云南云香会员平台'
    imgUrl = imgUrl || (config.website + require('../assets/images/logo-img.png'))
    desc = desc || '云南云香会员平台'
    // let title = window.wxShare
    let entryUrl = storage.getEntryUrl() // ios 在vue history模式下，跳页面 但浏览器上的链接不变， 所以用第一次进入的地址去请求微信配置（老版本微信才有此问题）
    if (utils.getDeviceType() == 'wx-Android') { // 安卓在vue history模式下，跳页面 浏览器上的链接会变，所以用当前页面地址去请求微信配置
      entryUrl = window.location.href
    }
    console.log('entryUrl:', entryUrl)
    request.getWxConfig(entryUrl).then(data => {
      wx.config({ // eslint-disable-line
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: data.appId, // 必填，公众号的唯一标识
        timestamp: data.timestamp, // 必填，生成签名的时间戳
        nonceStr: data.nonceStr, // 必填，生成签名的随机串
        signature: data.signature, // 必填，签名，见附录1
        jsApiList: [
          'onMenuShareTimeline',
          'onMenuShareAppMessage',
          'chooseImage',
          'getLocalImgData'
        ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      })
      console.log('wx config')
      wx.ready(function () { // eslint-disable-line
        console.log('wx ready')
        let memberId = storage.getMemberInfo().member_id
        var link = utils.addUrlParam(url, 'fkmid', memberId)
        // var link = ''
        // if (url.indexOf('?') > 0) {
        //   link = url + '&fkmid=' + memberId
        // } else {
        //   link = url + '?fkmid=' + memberId
        // }
        // console.log('link2:', link, imgUrl)
        wx.onMenuShareTimeline({ // eslint-disable-line
          title: title, // 分享标题
          link: link, // 分享链接
          imgUrl: imgUrl, // 分享图标
          success: function () {
            //  alert ('分享成功');
            // 用户确认分享后执行的回调函数
            request.integralAddByShareTimeline(memberId).then((data) => {
              Toast('分享朋友圈成功')
              console.log('分享朋友圈成功', data)
            })
          },
          cancel: function () {
            // 用户取消分享后执行的回调函数
          }
        })

        wx.onMenuShareAppMessage({ // eslint-disable-line
          title: title, // 分享标题
          desc: desc, // 分享描述
          link: link, // 分享链接
          imgUrl: imgUrl, // 分享图标
          type: '', // 分享类型,music、video或link，不填默认为link
          dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
          success: function () {
            // 用户确认分享后执行的回调函数
          },
          cancel: function () {
            // 用户取消分享后执行的回调函数
          }
        })
      })
    })
  }
}

export default WeixinNative
